ed9aa7
@@ -145,12 +145,18 @@
public class WeldBootstrapService implements Service<WeldBootstrapService> {
                 final Runnable task = new Runnable() {
                     @Override
                     public void run() {
+                        WeldLogger.DEPLOYMENT_LOGGER.debugf("Weld container cleanup for deployment %s", deploymentName);
+                        ClassLoader oldTccl = WildFlySecurityManager.getCurrentContextClassLoaderPrivileged();
                         try {
-                            WeldLogger.DEPLOYMENT_LOGGER.debugf("Attempting to perform weld container cleanup for deployment %s",
-                                    deploymentName);
+                            WildFlySecurityManager
+                                    .setCurrentContextClassLoaderPrivileged(deployment.getModule().getClassLoader());
+                            WeldProvider.containerShutDown(container);
                             container.setState(ContainerState.SHUTDOWN);
                             container.cleanup();
+                            setStarted(false);
                         } finally {
+                            WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(oldTccl);
+                            ModuleGroupSingletonProvider.removeClassLoader(deployment.getModule().getClassLoader());
                             context.complete();
                         }
                     }
